Modern computer systems require robust and predictable reliability, performance, stability and availability. In many modern computer systems, particularly those running in virtualized or distributed computing environments, a plurality of applications may use shared computer resources while executing. In such computer systems, when resources such as computer memory become scarce, the applications, guest operating systems and/or other such entities may compete with one another in their demand for those resources. Such demand may cause system delays, application failures, system slowdowns and application and operating system failure. This demand may become worse in systems where a host machine supports multiple guest virtual machines, where each guest virtual machine may run a plurality of applications each with resource demands. The demand for resources is only made worse in view of the fact that while assigning resources to applications and guest operating systems is relatively straightforward, reclaiming those same resources from applications and guest operating systems is more complex. When a host is unable to reclaim scarce resources, performance of each application and guest virtual machine may suffer to the point where all applications and guest virtual machines are unable to provide even basic functionality with acceptable performance, leading to ever decreasing performance and an impaired customer experience.